home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / ShareReactor (RU) (large pic).ifs < prev    next >
Encoding:
Text File  |  2004-12-29  |  11.6 KB  |  392 lines

  1. // GETINFO SCRIPTING 
  2. // Use only for sharereactor.ru releases 
  3. (*************************************************** 
  4.  *  Movie information import script for:           * 
  5.  *    Sharereactor Russian,                        * 
  6.  *    http://www.sharereactor.ru/                  * 
  7.  *                                                 * 
  8.  *  (c) 2003 By AIG                                * 
  9.  *  corrected by KoSeA & Leonid_Z                  * 
  10.  *                                                 * 
  11.  *  Update: 18.06.2004                             * 
  12.  *  - Fixed some false checkboxes                  * 
  13.  *                                                 * 
  14.  *  Known issues:                                  * 
  15.  *  - time can't be added to catalog in some cases * 
  16.  *                                                 * 
  17.  *  For use with Ant Movie Catalog 3.4.3           * 
  18.  *  http://www.antp.be/software/moviecatalog       * 
  19.  *                                                 * 
  20.  *  The source code of the script can be used in   * 
  21.  *  another program only if full credits to        * 
  22.  *  script author and a link to Ant Movie Catalog  * 
  23.  *  website are given in the About box or in       * 
  24.  *  the documentation of the program               * 
  25.  *                                                 * 
  26.  ***************************************************) 
  27. program Sharereactorru; 
  28. var 
  29.   MovieName: string; 
  30.  
  31. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; 
  32. var 
  33.   i: Integer; 
  34. begin 
  35.   result := -1; 
  36.   if StartAt < 0 then 
  37.     StartAt := 0; 
  38.   for i := StartAt to List.Count-1 do 
  39.     if Pos(Pattern, List.GetString(i)) <> 0 then 
  40.     begin 
  41.       result := i; 
  42.       Break; 
  43.     end; 
  44. end; 
  45.  
  46. procedure AnalyzePage(Address: string); 
  47. var 
  48.   Page: TStringList; 
  49.   LineNr: Integer; 
  50. begin 
  51.   Page := TStringList.Create; 
  52.   Page.Text := GetPage(Address); 
  53.   
  54.     PickTreeClear; 
  55.     LineNr := 0; 
  56.     LineNr := FindLine('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', Page, LineNr); 
  57.     if LineNr > -1 then 
  58.     begin 
  59.       PickTreeAdd('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', ''); 
  60.       AddMoviesTitles(Page, LineNr); 
  61.     end; 
  62.   
  63.     if PickTreeExec(Address) then 
  64.      begin 
  65.        Page.Free; 
  66.        Page := TStringList.Create; 
  67.        Page.Text := GetPage(Address); 
  68.        SetField(fieldURL, Address); 
  69.        AnalyzeMoviePage(Page) 
  70.      end 
  71.  Page.Free; 
  72. end; 
  73.  
  74. procedure AnalyzeMoviePage(Page: TStringList); 
  75. var 
  76.   Line, Value, value1, cuchr: string; 
  77.   LineNr, i: Integer; 
  78.   BeginPos, EndPos: Integer; 
  79.  
  80. begin 
  81.  
  82.    // Original Title & TranslatedTitle & Year
  83.    LineNr := FindLine(' ', Page, 0);           //╧εΦ±Ω Φ∞σφΦ ⌠Φδⁿ∞α ╨╙╤
  84.    Line := Page.GetString(LineNr);
  85.  
  86.    if LineNr > -1 then
  87.    begin
  88.     BeginPos := pos('<H1>', Line);
  89.     if BeginPos > 0 then
  90.       BeginPos := BeginPos + 4;
  91.     EndPos := pos('</H1>', Line);
  92.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
  93.     HTMLRemoveTags(Value);
  94.     HTMLDecode(Value);
  95.     SetField(fieldTranslatedTitle, Value);
  96.    end
  97.    
  98.    LineNr := FindLine(' ', Page, LineNr+1);     //╧σ≡σΓσΣσφφεσ φατΓαφΦσ 
  99.    Line := Page.GetString(LineNr); 
  100.    if LineNr > -1 then 
  101.    begin 
  102.     BeginPos := pos('</B>', Line); 
  103.     if BeginPos > 0 then 
  104.       BeginPos := BeginPos + 5; 
  105.     EndPos := Length(Line); 
  106.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  107.     HTMLDecode(Value); 
  108.     SetField(fieldOriginalTitle, Value); 
  109.    end 
  110.  
  111.    LineNr := FindLine(' ', Page, LineNr+1);       //├εΣ Γ√⌡εΣα 
  112.    Line := Page.GetString(LineNr); 
  113.    if LineNr > -1 then 
  114.    begin 
  115.     BeginPos := pos('</B>', Line); 
  116.     if BeginPos > 0 then 
  117.       BeginPos := BeginPos + 5; 
  118.     EndPos := Length(Line); 
  119.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  120.     SetField(fieldYear, Value); 
  121.    end; 
  122.  
  123.    //Category
  124.    LineNr := FindLine(' ', Page, LineNr+1);        //╞αφ≡
  125.    Line := Page.GetString(LineNr);
  126.    if LineNr > -1 then
  127.    begin
  128.     BeginPos := pos('("', Line);
  129.     if BeginPos > 0 then
  130.       BeginPos := BeginPos + 2;
  131.     EndPos := pos('")', Line)-1;
  132.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );
  133.     HTMLDecode(Value);
  134.     SetField(fieldCategory, Value);
  135.    end;
  136.    
  137.    LineNr := FindLine(' ', Page, LineNr+1);        //╨σµΦ±cσ≡ 
  138.    Line := Page.GetString(LineNr); 
  139.    if LineNr > -1 then 
  140.    begin 
  141.     BeginPos := pos('</B>', Line); 
  142.     if BeginPos > 0 then 
  143.       BeginPos := BeginPos + 5; 
  144.     EndPos := Length(Line); 
  145.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  146.     HTMLDecode(Value); 
  147.     SetField(fieldDirector,Value); 
  148.    end 
  149.  
  150.    LineNr := FindLine(' ', Page, LineNr+1);         //└Ω≥σ≡√ 
  151.    Line := Page.GetString(LineNr); 
  152.    if LineNr > -1 then 
  153.    begin 
  154.     BeginPos := pos('</B>', Line); 
  155.     if BeginPos > 0 then 
  156.       BeginPos := BeginPos + 5; 
  157.     EndPos := Length(Line); 
  158.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  159.     HTMLDecode(Value); 
  160.     HTMLRemoveTags(Value); 
  161.  
  162.  
  163.    SetField(fieldActors,value); 
  164.    end; 
  165.  
  166.    LineNr := FindLine(' ', Page, LineNr+1);          //╬∩Φ±αφΦσ 
  167.    Line := Page.GetString(LineNr); 
  168.    if LineNr > -1 then 
  169.    begin 
  170.     BeginPos := pos('</B>', Line); 
  171.     if BeginPos > 0 then 
  172.       BeginPos := BeginPos + 5; 
  173.     EndPos := Length(Line); 
  174.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  175.     HTMLDecode(Value); 
  176.     SetField(fieldDescription, Value); 
  177.    end; 
  178.  
  179.    LineNr := FindLine(' ', Page, LineNr+1);          //╧≡εΣ■±±σ≡ 
  180.    Line := Page.GetString(LineNr); 
  181.    if LineNr > -1 then 
  182.    begin 
  183.     BeginPos := pos('</B>', Line); 
  184.     if BeginPos > 0 then 
  185.       BeginPos := BeginPos + 5; 
  186.     EndPos := Length(Line); 
  187.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  188.     HTMLDecode(Value); 
  189.     SetField(fieldProducer, Value); 
  190.    end; 
  191.  
  192.    LineNr := FindLine(' ', Page, LineNr+1);     //╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ 
  193.    Line := Page.GetString(LineNr); 
  194.    if LineNr > -1 then 
  195.    begin 
  196.     BeginPos := pos('</B>', Line); 
  197.     if BeginPos > 0 then 
  198.       BeginPos := BeginPos + 5; 
  199.     EndPos := Length(Line); 
  200.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  201.     HTMLDecode(Value); 
  202.     SetField(fieldLength, Value); 
  203.    end; 
  204.  
  205.    LineNr := FindLine(' ', Page, LineNr+1);      //▀τ√Ω 
  206.    Line := Page.GetString(LineNr); 
  207.    if LineNr > -1 then 
  208.    begin 
  209.     BeginPos := pos('</B>', Line); 
  210.     if BeginPos > 0 then 
  211.       BeginPos := BeginPos + 5; 
  212.     EndPos := Length(Line); 
  213.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  214.     HTMLDecode(Value); 
  215.     SetField(fieldLanguages, Value); 
  216.    end; 
  217.  
  218.    LineNr := FindLine(' ', Page, LineNr+1);       //╩ε∞∞σφ≥α≡ΦΦ 
  219.    Line := Page.GetString(LineNr); 
  220.    if LineNr > -1 then 
  221.    begin 
  222.     BeginPos := pos('</B>', Line); 
  223.     if BeginPos > 0 then 
  224.       BeginPos := BeginPos + 5; 
  225.     EndPos := Length(Line); 
  226.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  227.     HTMLDecode(Value); 
  228.     SetField(fieldComments, Value); 
  229.    end; 
  230.  
  231.    LineNr := FindLine(' ', Page, LineNr+1);        //─ε∩εδφΦ≥σδⁿφε 
  232.    Line := Page.GetString(LineNr); 
  233.    if LineNr > -1 then 
  234.    begin 
  235.     BeginPos := pos('</B>', Line); 
  236.     if BeginPos > 0 then 
  237.       BeginPos := BeginPos + 5; 
  238.     EndPos := Length(Line); 
  239.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  240.  
  241.     LineNr := FindLine(' ', Page, LineNr+1);        //╘ε≡∞α≥ 
  242.     Line := Page.GetString(LineNr); 
  243.     if LineNr > -1 then 
  244.      begin 
  245.       BeginPos := pos('</B>', Line); 
  246.       if BeginPos > 0 then 
  247.        BeginPos := BeginPos + 5; 
  248.       EndPos := Length(Line); 
  249.       Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  250.       LineNr := FindLine(' ', Page, LineNr+1); 
  251.       Line := Page.GetString(LineNr); 
  252.       if LineNr > -1 then 
  253.        begin 
  254.         BeginPos := pos('</B>', Line); 
  255.         if BeginPos > 0 then 
  256.          BeginPos := BeginPos + 5; 
  257.         EndPos := Length(Line); 
  258.         Value := Value+ ', ' + copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  259.         value:='';
  260.         HTMLDecode(Value); 
  261.         SetField(fieldVideoFormat, Value); 
  262.        end; 
  263.      end; 
  264.    end; 
  265.  
  266.    LineNr := FindLine(' ', Page, LineNr+1);        //╩α≈σ±≥Γε Ωα≡≥ΦφΩΦ 
  267.    Line := Page.GetString(LineNr); 
  268.    if LineNr > -1 then 
  269.    begin 
  270.     BeginPos := pos('</B>', Line); 
  271.     if BeginPos > 0 then 
  272.       BeginPos := BeginPos + 5; 
  273.     EndPos := Length(Line); 
  274.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  275.     value:='';
  276.     HTMLDecode(Value); 
  277.     SetField(fieldResolution, Value); 
  278.    end; 
  279.     
  280.     
  281.     
  282.      LineNr := FindLine(' ', Page, LineNr+1);        //└≤ΣΦε 
  283.    Line := Page.GetString(LineNr); 
  284.    if LineNr > -1 then 
  285.    begin 
  286.     BeginPos := pos('</B>', Line); 
  287.     if BeginPos > 0 then 
  288.       BeginPos := BeginPos + 5; 
  289.     EndPos := Length(Line); 
  290.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  291.     value:='';
  292.     HTMLDecode(Value); 
  293.     SetField(fieldAudioFormat, Value); 
  294.    end; 
  295.  
  296.    LineNr := FindLine(' ', Page, LineNr+1); 
  297.    Line := Page.GetString(LineNr); 
  298.    if LineNr > -1 then 
  299.    begin 
  300.     BeginPos := pos('</B>', Line); 
  301.     if BeginPos > 0 then 
  302.       BeginPos := BeginPos + 5; 
  303.     EndPos := Length(Line); 
  304.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); 
  305.     value:='';
  306.     HTMLDecode(Value); 
  307.     SetField(fieldSize, Value); 
  308.    end; 
  309.  
  310.    LineNr := FindLine('/covers/', Page, 0); 
  311.    Line := Page.GetString(LineNr); 
  312.    if LineNr > -1 then 
  313.    begin 
  314.    BeginPos := pos('<I', Line); 
  315.  
  316.     if BeginPos > 0 then 
  317.      BeginPos := BeginPos + 1; 
  318.     EndPos:=Length(Line); 
  319.     Line := copy(Line, BeginPos,EndPos-BeginPos); 
  320.     Value := copy(Line,10, pos('">', Line) - 10 ); 
  321.     Value := 'http://sharereactor.ru'+Value; 
  322.     GetPicture(Value, False); 
  323.    end 
  324.    else 
  325.     begin 
  326.      LineNr := FindLine('amazon.com/', Page, 0); 
  327.      Line := Page.GetString(LineNr); 
  328.      if LineNr > -1 then 
  329.       begin 
  330.        BeginPos := pos('<I', Line); 
  331.  
  332.       if BeginPos > 0 then 
  333.       BeginPos := BeginPos + 1; 
  334.       EndPos:=Length(Line); 
  335.       Line := copy(Line, BeginPos,EndPos-BeginPos); 
  336.       Value := copy(Line,10, pos('">', Line) - 10 ); 
  337.       GetPicture(Value, False); 
  338.      end; 
  339.  
  340.     end; 
  341.  
  342.   DisplayResults; 
  343. end; 
  344.  
  345.  
  346. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer); 
  347. var 
  348.   Line: string; 
  349.   MovieTitle, MovieAddress: string; 
  350.   StartPos,EndPos,AddPos: Integer; 
  351. begin 
  352.  
  353.     LineNr := LineNr + 10; 
  354.     Line := Page.GetString(LineNr); 
  355.     StartPos := pos('<A', Line); 
  356.  
  357. repeat 
  358.  
  359.      
  360.     if StartPos > 0 then 
  361.     begin 
  362.       StartPos:=StartPos+8; 
  363.       EndPos := Length(Line); 
  364.       Line:=copy(Line,StartPos,EndPos - StartPos); 
  365.       MovieAddress := copy(Line, 2, pos('">', Line) -2 ); 
  366.       StartPos := pos('">', Line) + 2; 
  367.       MovieTitle := copy(Line, StartPos, pos('</A>', Line) - StartPos); 
  368.       HTMLDecode(Movietitle); 
  369.       PickTreeAdd(MovieTitle, 'http://sharereactor.ru' + MovieAddress); 
  370.     end; 
  371.  
  372.     StartPos := Length(Movietitle)+StartPos; 
  373.  
  374.     StartPos := pos('<A', Line); 
  375.  
  376.   until  StartPos <= 0; 
  377. end; 
  378.  
  379. begin 
  380.   if CheckVersion(3,4,0) then 
  381.   begin 
  382.     MovieName := GetField(fieldOriginalTitle); 
  383.     if MovieName = '' then 
  384.       MovieName := GetField(fieldTranslatedTitle); 
  385.     if Input('IMDb Import', 'Enter the title of the movie:', MovieName) then 
  386.     begin 
  387.       AnalyzePage('http://sharereactor.ru/cgi-bin/mzsearch.cgi?search='+UrlEncode(MovieName)); 
  388.     end; 
  389.   end else 
  390.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)'); 
  391. end. 
  392.